package com.lanou.lenanapp.entity.greendao;

import android.database.sqlite.SQLiteDatabase;

import java.util.Map;

import de.greenrobot.dao.AbstractDao;
import de.greenrobot.dao.AbstractDaoSession;
import de.greenrobot.dao.identityscope.IdentityScopeType;
import de.greenrobot.dao.internal.DaoConfig;

import com.lanou.lenanapp.entity.greendao.JokeEntity;
import com.lanou.lenanapp.entity.greendao.ImageEntity;
import com.lanou.lenanapp.entity.greendao.SpecialEntity;
import com.lanou.lenanapp.entity.greendao.CollectEntity;
import com.lanou.lenanapp.entity.greendao.CollectImageEntity;
import com.lanou.lenanapp.entity.greendao.LoginEntity;
import com.lanou.lenanapp.entity.greendao.LoginOneEntity;
import com.lanou.lenanapp.entity.greendao.IsChangeIntent;

import com.lanou.lenanapp.entity.greendao.JokeEntityDao;
import com.lanou.lenanapp.entity.greendao.ImageEntityDao;
import com.lanou.lenanapp.entity.greendao.SpecialEntityDao;
import com.lanou.lenanapp.entity.greendao.CollectEntityDao;
import com.lanou.lenanapp.entity.greendao.CollectImageEntityDao;
import com.lanou.lenanapp.entity.greendao.LoginEntityDao;
import com.lanou.lenanapp.entity.greendao.LoginOneEntityDao;
import com.lanou.lenanapp.entity.greendao.IsChangeIntentDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see de.greenrobot.dao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig jokeEntityDaoConfig;
    private final DaoConfig imageEntityDaoConfig;
    private final DaoConfig specialEntityDaoConfig;
    private final DaoConfig collectEntityDaoConfig;
    private final DaoConfig collectImageEntityDaoConfig;
    private final DaoConfig loginEntityDaoConfig;
    private final DaoConfig loginOneEntityDaoConfig;
    private final DaoConfig isChangeIntentDaoConfig;

    private final JokeEntityDao jokeEntityDao;
    private final ImageEntityDao imageEntityDao;
    private final SpecialEntityDao specialEntityDao;
    private final CollectEntityDao collectEntityDao;
    private final CollectImageEntityDao collectImageEntityDao;
    private final LoginEntityDao loginEntityDao;
    private final LoginOneEntityDao loginOneEntityDao;
    private final IsChangeIntentDao isChangeIntentDao;

    public DaoSession(SQLiteDatabase db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        jokeEntityDaoConfig = daoConfigMap.get(JokeEntityDao.class).clone();
        jokeEntityDaoConfig.initIdentityScope(type);

        imageEntityDaoConfig = daoConfigMap.get(ImageEntityDao.class).clone();
        imageEntityDaoConfig.initIdentityScope(type);


        specialEntityDaoConfig = daoConfigMap.get(SpecialEntityDao.class).clone();
        specialEntityDaoConfig.initIdentityScope(type);

        collectEntityDaoConfig = daoConfigMap.get(CollectEntityDao.class).clone();
        collectEntityDaoConfig.initIdentityScope(type);

        collectImageEntityDaoConfig = daoConfigMap.get(CollectImageEntityDao.class).clone();
        collectImageEntityDaoConfig.initIdentityScope(type);

        loginEntityDaoConfig = daoConfigMap.get(LoginEntityDao.class).clone();
        loginEntityDaoConfig.initIdentityScope(type);

        loginOneEntityDaoConfig = daoConfigMap.get(LoginOneEntityDao.class).clone();
        loginOneEntityDaoConfig.initIdentityScope(type);

        isChangeIntentDaoConfig = daoConfigMap.get(IsChangeIntentDao.class).clone();
        isChangeIntentDaoConfig.initIdentityScope(type);

        jokeEntityDao = new JokeEntityDao(jokeEntityDaoConfig, this);
        imageEntityDao = new ImageEntityDao(imageEntityDaoConfig, this);
        specialEntityDao = new SpecialEntityDao(specialEntityDaoConfig, this);
        collectEntityDao = new CollectEntityDao(collectEntityDaoConfig, this);
        collectImageEntityDao = new CollectImageEntityDao(collectImageEntityDaoConfig, this);
        loginEntityDao = new LoginEntityDao(loginEntityDaoConfig, this);
        loginOneEntityDao = new LoginOneEntityDao(loginOneEntityDaoConfig, this);
        isChangeIntentDao = new IsChangeIntentDao(isChangeIntentDaoConfig, this);

        registerDao(JokeEntity.class, jokeEntityDao);
        registerDao(ImageEntity.class, imageEntityDao);
        registerDao(SpecialEntity.class, specialEntityDao);
        registerDao(CollectEntity.class, collectEntityDao);
        registerDao(CollectImageEntity.class, collectImageEntityDao);
        registerDao(LoginEntity.class, loginEntityDao);
        registerDao(LoginOneEntity.class, loginOneEntityDao);
        registerDao(IsChangeIntent.class, isChangeIntentDao);
    }
    
    public void clear() {
        jokeEntityDaoConfig.getIdentityScope().clear();
        imageEntityDaoConfig.getIdentityScope().clear();
        specialEntityDaoConfig.getIdentityScope().clear();
        collectEntityDaoConfig.getIdentityScope().clear();
        collectImageEntityDaoConfig.getIdentityScope().clear();
        loginEntityDaoConfig.getIdentityScope().clear();
        loginOneEntityDaoConfig.getIdentityScope().clear();
        isChangeIntentDaoConfig.getIdentityScope().clear();
    }

    public JokeEntityDao getJokeEntityDao() {
        return jokeEntityDao;
    }

    public ImageEntityDao getImageEntityDao() {
        return imageEntityDao;
    }


    public SpecialEntityDao getSpecialEntityDao() {
        return specialEntityDao;
    }

    public CollectEntityDao getCollectEntityDao() {
        return collectEntityDao;
    }

    public CollectImageEntityDao getCollectImageEntityDao() {
        return collectImageEntityDao;
    }

    public LoginEntityDao getLoginEntityDao() {
        return loginEntityDao;
    }

    public LoginOneEntityDao getLoginOneEntityDao() {
        return loginOneEntityDao;
    }

    public IsChangeIntentDao getIsChangeIntentDao() {
        return isChangeIntentDao;
    }

}
